The present invention relates generally to three-dimensional (3D) computerized tomography (CT) and more particularly to the generation of Radon derivative data with a plurality of processors.
To acquire cone beam projection data in a cone-beam CT implementation, an object is scanned, preferably over a 360.degree. angular range, either by moving a cone beam x-ray source in a scanning circle about the object, while keeping a two-dimensional (2D) array detector fixed with reference to the cone beam x-ray source or by rotating the object while the x-ray source and detector remain stationary. The image of the object is reconstructed by using a Radon inversion process, in which the total Radon transform of the cone beam projection data is computed. The first step in the reconstruction process is to partition the cone beam projection data into a plurality of vertical planes in Radon space. Within each vertical plane, the Radon derivative data is computed. However, computing the Radon derivative data requires a large amount of processing power and an infinite amount of time. In order to overcome this problem, cone beam CT implementations have sampled the cone beam projection data so that the Radon derivative data is computed for a finite set of uniformly spaced points. The best results have occurred by sampling the Radon space into a polar grid having a plurality of uniformly spaced grid points.
However, the computation of the Radon derivative data is still very time consuming. Another procedure that has been used to reduce the time required to compute the Radon derivative data is to use a number of processors connected in parallel. In the parallel processing procedure, the plurality of vertical planes are partitioned among the number of processors, so that each processor handles the computations of the Radon derivative data for the Radon points located on a group of adjacent planes. For example, if there are N.sub.pr processors and M.times.N.sub.pr planes, then the relationship between the processors and the vertical planes would be as follows:
processor 1 processes planes 1, 2, 3 . . . , M; processor 2 processes planes M+1, M+2, M+3 . . . , 2M; . . . processor N.sub.pr processes (N.sub.pr -1)M+1, (N.sub.pr -1)M+2, (N.sub.pr -1)M+3, . . . , N.sub.pr M.
Partitioning the vertical planes so that each processor computes Radon derivative data for consecutive planes has its drawbacks. In particular, since each processor processes consecutive planes, the workload of computing the Radon derivative data is not evenly distributed among all of the processors. In this implementation, some processors will do a lot more computations than other processors. Therefore, the Radon derivative computations are not being performed in an efficient manner.